package com.loong.loong.hik.api.entity.door;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.Data;

/**
 * 可视对讲通话记录对象特征属性
 * @author jinyiang
 * @date 2023/3/22 10:03
 */
@Data
@TableName("hik_door_intercom_record")
public class HikDoorIntercomRecord {



	private static final long serialVersionUID = 1L;

	/**
	 * 事件ID
	 */
	@TableId(value = "event_id", type = IdType.ASSIGN_ID)
	@NotNull(message = "事件ID不能为空")
	@Size(max = 64, message = "事件ID长度不能超过64")
	private String eventId;

	/**
	 * 事件类型码： 0异常通话 1接到呼叫请求 2取消呼叫 3对方正忙 4拒绝接听 5无人接听超时 6呼叫成功 7呼叫成功，超时未挂机 8呼叫失败
	 */
	@TableField("event_type")
	@NotNull(message = "事件类型码不能为空")
	private Integer eventType;

	/**
	 * 推送消息ID
	 */
	@TableField("call_id")
	@NotNull(message = "推送消息ID不能为空")
	@Size(max = 64, message = "推送消息ID长度不能超过64")
	private String callId;

	/**
	 * 呼叫方设备唯一标识
	 */
	@TableField("sender_index_code")
	@Size(max = 64, message = "呼叫方设备唯一标识长度不能超过64")
	private String senderIndexCode;

	/**
	 * 呼叫方设备名称
	 */
	@TableField("sender_name")
	@Size(max = 64, message = "呼叫方设备名称长度不能超过64")
	private String senderName;

	/**
	 * 被叫方设备唯一标识
	 */
	@TableField("receiver_index_code")
	@Size(max = 64, message = "被叫方设备唯一标识长度不能超过64")
	private String receiverIndexCode;

	/**
	 * 被叫方设备名称
	 */
	@TableField("receiver_name")
	@Size(max = 64, message = "被叫方设备名称长度不能超过64")
	private String receiverName;

	/**
	 * 呼叫起始时间
	 */
	@TableField("call_start_time")
	private String callStartTime;

	/**
	 * 呼叫结束时间
	 */
	@TableField("call_stop_time")
	private String callStopTime;

	/**
	 * 是否接通（0未接通； 1接通）
	 */
	@TableField("is_connect")
	private Integer isConnect;

	/**
	 * 通话时间
	 */
	@TableField("connect_time")
	private String connectTime;

	/**
	 * 平台接受到事件的时间
	 */
	@TableField("receive_time")
	private String receiveTime;

	/**
	 * 备注信息
	 */
	@TableField("info")
	private String info;

}
